Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт
Предмет:
Алгоритмізація та програмування

Частина тексту файла

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ До модульної контрольної роботи №1 Варіант 5 Дата «1» грудня 2021 Завдання на Модульну контрольну роботу: Матриця 3 на 3 Значення від 0 0 до 2 2 як додаткові- початкові параметри (9 повинно бути, після імені програми) Алгоритм оберненої матриці Перед цим перевірка на не рівність визначника нулю Вивести на екран початкову та А-1 матрицю За бажанням виконати перевірку (множ. початкової та оберненої матриці= Е) Хід роботи: Введення матрицю було зроблене за допомогою додаткових параметрів консолі, Далі було виведено початкову матрицю, знайдено її визначник, перевірно на його рівність 0, якщо він не рівний нулю було обраховано та виведено обернену матрицю. Після виконання основних завдань було зроблено перевірку на те чи правильно виконане завдання, множення двух матриць.( Якщо у результаті виходить одинична матриця, то її знайдено правильно). У моєму випадку перевірка встановила що обернену матрицю знайдено правильно. Силка на Repl.it: https://replit.com/join/tkxkwycogz-tr-15fundamient Код програми: #include <stdio.h> #include <stdlib.h> #define SIZE 3 int main(int argc, char *argv[]) { double mat[SIZE][SIZE]; if(argc == 10) { //введення матриці for (int i = 0; i < SIZE; i++){ for (int j = 0; j < SIZE; j++) { mat[i][j] = atoi(argv[i*SIZE + j + 1]); } } printf("Початкова матриця: \n"); for (int i = 0; i < SIZE; i++){ for (int j = 0; j < SIZE; j++) { printf("%f ", mat[i][j]); } printf("\n"); } // Оголошуємо визначник і знаходимо його double det = 0; for(int i = 0; i < SIZE; i++) { det = det + (mat[0][i] * (mat[1][(i+1)%SIZE] * mat[2][(i+2)%SIZE] - mat[1][(i+2)%SIZE] * mat[2][(i+1)%SIZE])); } printf("\n"); if(det == 0) { printf("EROR"); return 0; } else { printf("Визначник матриці: %f\n",det); } // Обрахунок оберненої матриці double obertMat[SIZE][SIZE]; printf("\n"); printf("Обернена матриця: \n"); for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { obertMat[i][j] = ((mat[(j+1)%SIZE][(i+1)%SIZE] * mat[(j+2)%SIZE][(i+2)%SIZE]) - (mat[(j+1)%SIZE][(i+2)%SIZE] * mat[(j+2)%SIZE][(i+1)%SIZE])) / det; } } for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { printf("%f ",obertMat[i][j]); } printf("\n"); } // Перевірка матриці на те чи вона обернена, у результаті множення має вийти одининчна матриця double resultMat[SIZE][SIZE]; for(int i = 0; i < SIZE; i++) { for( int j =0; j < SIZE; j++) { for(int k = 0; k < SIZE; k++) { resultMat[i][j] += mat[i][k]*obertMat[k][j]; } } } printf("\n"); printf("Результат перевірки(множення оберненої на початкову матрицю): \n"); for(int i = 0; i < SIZE; i++){ for(int j = 0; j < SIZE; j++) { printf("%f ",resultMat[i][j]); } printf("\n"); } printf("\nЯкщо унаслідок множення вийшла одинична матриця, то оберенена знайдена правильно!"); } else { printf("EROR"); return 0; } }
Антиботан аватар за замовчуванням

03.05.2023 18:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини